/****************************************************************************
 * Copyright (c) 2023 Qualcomm Technologies International, Ltd.
****************************************************************************/
/**
 *
 * \defgroup ml_engine
 * \file  abs_kalimba_public_example.h
 *
 * example for a custom operator header file
 *
 */
 /****************************************************************************/

#ifndef ABS_KALIMBA_PUBLIC_EXAMPLE_H
#define ABS_KALIMBA_PUBLIC_EXAMPLE_H

#include <stdfix.h>

#include "layer_lite_kalimba.h"

/* Identifer of the absolute operator */
#define ABS_ID 0xC003

/* input tensor count */
#define ABS_INPUT_TENSOR_COUNT (1)
/* output tensor count */
#define ABS_OUTPUT_TENSOR_COUNT (1)

/* Absolute operator specific structure */
typedef struct Abs {
    uint8 is_inplace;    /*!< Flag to indicate if the operation is inplace */
} Abs;

/**
 * \brief Absolute operator processing function
 *
 * \param kalimba layer_lite structure with input, output and abs op params
 *
 * \return ML_SUCCESS(0) if successful, else ML_FAIL(1)
 */
int abs_forward(layer_lite *layer);

#endif /* ABS_KALIMBA_PUBLIC_EXAMPLE_H */
